package cn.kgc.tushu.dao.impl;
import cn.kgc.tushu.dao.EmpInt;
import cn.kgc.tushu.dao.Init;
import cn.kgc.tushu.entity.Emp;
import cn.kgc.tushu.serivce.Opera;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Map;

/**
 * 图书系统方法
 */
public class EmpIntImpl implements EmpInt {
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    Map<Integer,Emp> emps=Init.emps;
    Collection<Emp> empCollection=emps.values();
    File file = new File("Emp.txt");
    @Override
    public void getByName(String name) {
        if (file.exists()){
            emps=Opera.unSeria(file);
        }
        empCollection=emps.values();
        System.out.println("图书编号\t图书名称\t图书价格\t图书状态\t图书创建日期");
        boolean flag=false;
        for (Emp emp:empCollection){
            if (emp.getName().indexOf(name)>-1){
                String zhuangTai=null;
                if (emp.getZhuangTai()==1){
                    zhuangTai="借出";
                }else {
                    zhuangTai="可借";
                }
                System.out.println(emp.getId()+"\t\t\t"+emp.getName()+"\t"+emp.getPrice()+"\t"+zhuangTai+"\t\t\t"+sdf.format(emp.getDay()));
                flag=true;
            }
        }
        if (!flag){
            System.out.println("没有找到该图书!");
        }
    }
    @Override
    public void show() {
        System.out.println("图书编号\t图书名称\t图书价格\t图书状态\t图书创建日期");
        if (file.exists()){
            emps=Opera.unSeria(file);
        }
        empCollection=emps.values();
        for (Emp emp:empCollection){
            String zhuangTai=null;
            if (emp.getZhuangTai()==1){
                zhuangTai="借出";
            }else {
                zhuangTai="可借";
            }
            System.out.println(emp.getId()+"\t\t\t"+emp.getName()+"\t\t"+emp.getPrice()+"\t\t"+zhuangTai+"\t\t"+sdf.format(emp.getDay()));
        }
    }
    @Override
    public void addBook(Emp emp) {
        if (file.exists()){
           emps=Opera.unSeria(file);
        }
            emps.put(emp.getId(),emp);
            Opera.Seria(emps,file);
            System.out.println("添加成功");
    }
    @Override
    public void borroBook(String name) {
        boolean b=false;
        if (file.exists()){
            emps=Opera.unSeria(file);
        }
        empCollection=emps.values();
        for (Emp emp:empCollection){
            if (name.equals(emp.getName())&&emp.getZhuangTai()==2){
                System.out.println("借书成功！");
                emp.setZhuangTai(1);
                Opera.Seria(emps,file);
                b=true;
                break;
            }else if(emp.getName().equals(name)&&emp.getZhuangTai()==1){
                System.out.println("该书已借出，请选择其他图书!");
                b=true;
                break;
                }
            }
            if (!b){
                System.out.println("没有找到该图书!");
            }

    }
    @Override
    public void alsoBook(String name) {
        boolean flag=false;
        if (file.exists()){
            emps=Opera.unSeria(file);
        }
        empCollection=emps.values();
        for (Emp emp:empCollection){
            if (emp.getName().equals(name)&&emp.getZhuangTai()==1){
                System.out.println("还书成功!");
                emp.setZhuangTai(2);
                Opera.Seria(emps,file);
                flag=true;
                break;
            }else if (emp.getName().equals(name)&&emp.getZhuangTai()==2){
                System.out.println("图书已还，无需再次还!");
                flag=true;
                break;
            }
        }
        if (!flag){
            System.out.println("没有找到该图书,还书失败!");
        }

    }
    @Override
    public void deleteBooke(int id) {
        boolean flag= false;
        if (file.exists()){
            emps=Opera.unSeria(file);
        }
        empCollection=emps.values();
        for (Emp emp:empCollection){
            if (emp.getId()==id){
                emps.remove(id);
                System.out.println("删除成功");
                flag=true;
                break;
            }
        }
        if (!flag){
                System.out.println("没有找到该图书");
        }
        Opera.Seria(emps,file);
    }
}
